
package com.gitee.sop.layui.adminserver.frameword.init.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(
    prefix = "jeesuite.cache.level1"
)
@Data
public class Level1CacheProperties {

    private boolean distributedMode = true;
    private String bcastServer;
    private String password;
    private String bcastScope;
    private String cacheProvider = "guavacache";
    private int maxCacheSize = 50000;
    private int timeToLiveSeconds = 3600;

    /**
     * 修改jeesuite框架所提供的该值的作用
     * 原值作用：用于设置不同的缓存仓库名称，类型ehcache必须在配置文件先设置缓存的key；其次是在存入是选择性存入指定缓存，而存入指定缓存
     * 必须且需要以如下类似的格式：缓存仓库名称.缓存key ；jeesuite才会将其缓存到本地中，否则1级缓存不起作用；
     *
     * 修改之后的作用：固定一个仓库，规避仓库选取的复杂性（仓库在配置文件中设置，缓存值却在业务逻辑中实现，导致本地缓存时必须记住有哪些仓库可以缓存
     * ，且需要传入对应的值）；针对于相同缓存组全部清空的问题，在存入key时，使用可选择性的domain，即当清除指定domain中所以key即可；
     */
    public static final String DEFAULT_LOCAL_CACHE_NAME = "LOCAL_CACHE]";
    private String cacheNames = DEFAULT_LOCAL_CACHE_NAME;

    public static final String localKey(String key){
        return Level1CacheProperties.DEFAULT_LOCAL_CACHE_NAME+"." + key;
    }
}
